Release notes
2025r10
Point in time custom attributes in business API
Custom attributes are supported in the content, copyright, MAM, on-demand schedule, person and trailer API.
Previously, the following types were available:
-
Boolean
-
Date
-
Decimal number
-
Drop-down list
-
Drop-down list for multiselection
-
Duration
-
Integer
-
Reference
-
String
-
Text
-
Web
From this version, custom attributes of the type Point in time can also be used in these APIs.
In the GET calls, such as GET /program, the following suffixes can be added to the call to either get only specified attributes in the response or all custom attributes of the supported types:
-
?customAttributes=attributeName,attributeName -
?customAttributes=allCustomAttributes
For each custom attribute, the attribute name, value, and type will be given. The new type will be included in the response as follows:
...
"customAttributes": [
{
"attributeName": "embargoTimestamp",
"value": "2025-12-14T20:00:00Z",
"type": "Point in time field"
}
]
...
The Point in time custom attribute will be considered as a local timestamp in the Mediagenix Base platform in the default timezone, which is Brussels. When a GET call is done, the timestamp of the custom attribute is converted to UTC time.
For example, the Embargo timestamp from the example is 14/12/25 21:00:00. This is considered in the default timezone, Belgium, which is currently on UTC+1. When doing the GET call, the timestamp is returned as 2025-12-14T20:00:00Z.
In POST or PUT calls, an array of custom attributes needs to be provided with their attribute name and value. The new type should be specified as follows:
"customAttributes": {
"embargoTimestamp": "2025-12-14T20:00:00Z"
}
The timestamp is converted from UTC to the default time zone before being saved in Mediagenix Base platform. This custom attribute type should follow the ISO 8601 format, meaning YYYY-MM-DDTHH:MM:SSZ.
For example, if 2025-12-14T20:00:00Z is sent, this will be saved as 21:00:00.
If the correct format is not used, the following error message is returned:
{
"statusCode": "422",
"message": "Operation cannot be completed due to violations",
"timestamp": "2025-12-02T09:23:41Z",
"concept": "Program",
"id": "9502146329",
"errors": [
{
"errorCode": "CORE-00002",
"description": "Parsing error. Use ISO 8601 format",
"data": [
null
]
}
]
}
API developers
The YAMLs will be updated in an upcoming version. Until then, the changes above can already be entered manually.
2024r6
Franchises in business API
In this version, the franchise was introduced as an additional content type. Since franchises cannot be
-
created or deleted on the Mediagenix Base platform; or
-
linked to contracts or transmissions;
the following APIs have been adapted to follow this behaviour.
When the external reference of a franchise is provided as contentId, an error message is returned.
For example, POST /onDemandTransmissions call:
{
"statusCode": "422",
"message": "Operation cannot be completed due to violations",
"timestamp": "2024-05-31T18:22:34Z",
"concept": "OnDemandTransmission",
"id": null,
"errors": [
{
"errorCode": "ONDEMANDSCHEDULE-00013",
"description": "Only programs and episodes can be linked to an on demand transmission",
"data": []
}
]
}
2024r2
Custom attributes in on-demand schedule API
Custom attributes were already supported in the content, MAM, trailer API and person API.
From this version, the on-demand schedule API also supports custom attributes of the following types:
-
Boolean
-
Date
-
Decimal number
-
Drop-down list
-
Drop-down list for multiselection
-
Duration
-
Integer
-
Reference
-
String
-
Text
-
Web
In the GET /onDemandTransmissions and /onDemandTransmissions/onDemandTransmissionId calls, the following suffixes can be added to the URL to either get only the specified attributes in the response or all custom attributes of the supported types:
-
?customAttributes=attributeName,attributeName
-
?customAttributes=allCustomAttributes
For example: GET /onDemandTransmissions/9296208812?customAttributes=letterboxdAverage
For each custom attribute, the attribute name, value and type will be given. For example:
"customAttributes": [
{
"attributeName": "letterboxdAverage",
"value": "9",
"type": "String field"
}
]
For custom attributes of the type Drop-down list or Drop-down list for multiselection, a GET /dropdown/customAttribute/{attributeName} call has been added to the API to retrieve the possible values. The {attributeName} should be replaced with the actual attribute name of the custom attribute.
For example, GET /onDemandTransmissions/v1/dropdown/customAttribute/ageGroup.
To update one or more custom attributes on an on-demand transmission using the POST or PUT /onDemandTransmissions calls, an array needs to be provided with the attribute name and value of the custom attributes that should be updated:
"customAttributes": {
"letterboxAverage": "9",
"ageGroup": "18-35"
}
If the value is left empty by using null or "" for some types, the custom attribute is emptied.
The YAML has been updated for this change. It can be retrieved by using the GET /api call.
For API developers, the following parts of the YAML were updated.
30: get The addition of parameters for custom attributes at line 34 254: new drop-down call for custom attributes 395: schema for custom attributes 419: OnDemandTransmissionforGET schema 868: change to reference to new GET schema - $ref: '#/components/schemas/OnDemandTransmissionForGet'
For easier viewing, the YAMLs can also be compared here: TextCompare
Changes to deleting and updating transmissions in on-demand schedule API
Previously, it was not possible to
-
update an on-demand transmission using the
POSTorPUT /onDemandTransmissionscalls, -
delete an on-demand transmission using the
DELETE /onDemandTransmissions/{onDemandTransmissionId}call
of the on-demand schedule API when
-
a format template had already been applied;
-
an encoding media asset sequence was linked;
-
publication transmissions had been created;
-
publication records had been created;
In this case, a 422 error would be returned with the specific scenario:
Could not update/delete transmission:
-
the on demand transmission has a format template applied
-
the on demand transmission has encoding media asset linked
-
the on demand transmission has publication transmissions
-
the on demand transmission has publication records
For example:
{
"statusCode": "422",
"message": "Operation cannot be completed due to violations",
"timestamp": "2024-03-05T08:18:03Z",
"concept": "OnDemandTransmission",
"id": "8521812812",
"errors": [
{
"errorCode": "ONDEMANDSCHEDULE-00017",
"description": "Could not update/delete transmission: the on demand transmission has publication transmissions",
"data": [
"the on demand transmission has publication transmissions"
]
}
]
}
However, updating or deleting an on-demand transmission is allowed when doing it in WHATS'ON Base, even if there are already publication transmissions or publication records.
Therefore, from this version, it will be allowed to update or delete an on-demand transmission with publication transmissions and records in the on-demand schedule API.
When updating, such as changing the start or end date of the on-demand transmission using the POST or PUT calls, the linked publication transmissions and publication records will also be updated. So instead of the error message, a 200 message is returned:
{
"statusCode": "200",
"message": "OnDemandTransmission has been modified",
"timestamp": "2024-03-05T08:20:32Z",
"concept": "OnDemandTransmission",
"id": "8521812812"
}
When deleting an on-demand transmission using the DELETE call, the linked publication transmissions will also be deleted and the status of the publication records will be changed to either Deleted or Deleted after publication, depending on whether the record has previously been published.
Note that the constraints for the linked format template and encoding media asset are still applied.
Nothing has changed in the YAML for this new behaviour.
2022r3
Additional fields in GET transmission calls of on-demand schedule API
From this version, in the response of the
-
GET call to search for a specific on-demand transmission (
(GET /onDemandTransmissions/:onDemandTransmissionId:) -
GET call to search for on-demand transmissions (
GET /onDemandTransmissions),
of the on-demand schedule API, additional fields have been added:
-
mediaAssetId: the external reference of the media asset linked to the transmission -
contentType: the description of the type of content, for example program, episode etc. -
exploitationRightId: the external reference of the right linked to the transmission
This caused changes to the YAML so it is recommended to execute the call to get the newest version of the YAML.
2020r1.002.000
API version: v1.0.0
External reference cannot be cleared by BAPI
Within any POST and PUT call, if a an attribute is sent empty, WHATS'ON will clear that field. Previously, this was also possible with the external reference of a transmission.
Now, this is fixed. When no external reference is provided but the attribute is sent empty or null, we will ignore that tag and proceed as if there was no ID field (external reference) provided. This means that it should remain as is in a PUT call or return a new one in a POST call.
2019r1.000.000
API version: v1.0.0
Addition of On-demand schedule API
From this version on, it is possible to manage on-demand transmissions using the On-demand schedule API.